//
//  JGMusicAnimationViewFFT.h
//  JGMusicAnimation
//
//  Created by Mei Jigao on 16/3/11.
//  Copyright © 2016年 MEETStudio. All rights reserved.
//

//  实时原始音频流数据频谱波形动画

#import <UIKit/UIKit.h>

@interface JGMusicAnimationViewFFT : UIView

/**
 禁用背景色设置，使用透明色，否则曲线渐变颜色无效
 */
@property (nonatomic, copy, readonly) UIColor *backgroundColor UNAVAILABLE_ATTRIBUTE;

/**
 曲线显示频率范围
 @param maxFrequency 最大频率。Default: JGMAViewFFTFrequencyMaxDefault
 @param minFrequency 最小频率。Default: JGMAViewFFTFrequencyMinDefault
 */
@property (nonatomic, assign) float minFrequency;

/**
 曲线显示频率范围
 @param maxFrequency 最大频率。Default: JGMAViewFFTFrequencyMaxDefault
 @param minFrequency 最小频率。Default: JGMAViewFFTFrequencyMinDefault
 */
@property (nonatomic, assign) float maxFrequency;

/**
 曲线x（频率）方向细分个数，确定曲线波形周期，每个细分对应约0.15弧度。Default: JGMAViewNumOfBinsDefault
 */
@property (nonatomic, assign) NSUInteger numOfBins;

/**
 是否使用正弦进行比例补偿、翻转。Default: YES
 */
@property (nonatomic, assign) IBInspectable BOOL withSin;

/**
 正弦补偿是否只用于翻转。Default: NO
 */
@property (nonatomic, assign) IBInspectable BOOL sinSwaponly;

/**
 曲线刷新时间间隔。Default: JGMAViewDrawIntervalDefault
 */
@property (nonatomic, assign) IBInspectable CGFloat drawInterval;

/**
 曲线y（振幅）方向补偿倍数，确定曲线的高度。Default: JGMAViewGainDefault
 */
@property (nonatomic, assign) IBInspectable CGFloat gain;

/**
 曲线绘制宽度。Default: 1.f
 */
@property (nonatomic, assign) IBInspectable CGFloat lineWidth;

/**
 曲线渐变颜色
 */
@property (nonatomic, strong) NSArray *colors;

/**
 内存控制，释放内存
 */
- (void)removeDisplayTimer;

/**
 清除绘制内容
 */
- (void)clear;

/**
 刷新控制
 */
- (void)shouldDrawing:(BOOL)draw;

/**
 更新数据
 */
- (void)updateWithBuffer:(float *)buffer bufferSize:(UInt32)bufferSize;

@end
